﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Clases;

namespace Datos
{
    public class clsAccesoDatos
    {
        public static List<clsColor> ConsultaColor()
        {
            try
            {
                var lst = new List<clsColor>();
                var ent = new General_Entities();
                var sel = from q in ent.Color
                          select q;
                foreach (var item in sel)
                {
                    clsColor cls = new clsColor();
                    cls.codigo = item.codigo;
                    cls.descripcion = item.descripcion;
                    cls.subgrupo = item.subgrupo;
                    lst.Add(cls);
                }
                return lst;
            }
            catch (Exception)
            {
                return null;
            }
        }
        public static List<clsIdioma> ConsultaIdioma()
        {
            try
            {
                var lst = new List<clsIdioma>();
                var ent = new General_Entities();
                var sel = from q in ent.Idioma
                          select q;
                foreach (var item in sel)
                {
                    clsIdioma cls = new clsIdioma();
                    cls.codigo = item.codigo;
                    cls.descripcion = item.descripcion;
                    lst.Add(cls);
                }
                return lst;
            }
            catch (Exception)
            {
                return null;
            }
        }
        public static List<clsUnidadMedida> ConsultaUnidadMedida()
        {
            try
            {
                var lst = new List<clsUnidadMedida>();
                var ent = new General_Entities();
                var sel = from q in ent.UnidadMedida
                          select q;
                foreach (var item in sel)
                {
                    clsUnidadMedida cls = new clsUnidadMedida();
                    cls.codigo = item.codigo;
                    cls.descripcion = item.descripcion;
                    cls.subgrupo = item.subgrupo;
                    lst.Add(cls);
                }
                return lst;
            }
            catch (Exception)
            {
                return null;
            }
        }
        public static List<clsPreferencia> ConsultaPreferencia(decimal empresa = 50)
        {
            try
            {
                var lst = new List<clsPreferencia>();
                var ent = new General_Entities();
                var sel = from q in ent.Preferencia
                          select q;
                foreach (var item in sel)
                {
                    clsPreferencia cls = new clsPreferencia();
                    cls.empresa = item.empresa;
                    cls.rubro = Convert.ToDecimal(item.rubro);
                    cls.valor = item.valor;
                    lst.Add(cls);
                }
                return lst;
            }
            catch (Exception)
            {
                return null;
            }
        }
        public static bool guardar(List<clsPreferencia> lst, ref string ms)
        {
            try
            {
                foreach (var item in lst)
                {
                    try
                    {
                        var inst = new General_Entities();
                        var sel = (from q in inst.Preferencia
                                   where q.empresa == item.empresa && q.rubro == item.rubro
                                   select q).First();
                        sel.valor = Convert.ToDecimal(item.valor);
                        inst.SaveChanges();
                    }
                    catch (Exception)
                    {
                        using (var ent = new General_Entities())
                        {
                            var pre = new Preferencia()
                            {
                                empresa = item.empresa,
                                rubro = item.rubro,
                                valor = Convert.ToDecimal(item.valor)
                            };
                            ent.AddToPreferencia(pre);
                            ent.SaveChanges();
                        }
                    }
                }
                return true;
            }
            catch (Exception ex)
            {
                ms = ex.Message;
                return false;
            }
        }
    }
}
